package com.example.animal;

import java.time.LocalDate;

/**
 * 鸭嘴兽类，继承自哺乳动物类，实现生殖、行走、游泳接口
 * 鸭嘴兽是特殊的哺乳动物，虽然是哺乳动物却为卵生
 */
public class Platypus extends Mammal implements Reproduction, Walkable, Swimmable {
    /**
     * 构造函数
     * @param name 动物名称
     * @param speciesName 物种名称
     * @param birthDate 出生日期
     * @param color 颜色
     * @param weight 体重
     * @param gender 性别
     * @param temperatureType 体温类型
     * @param isViviparous 是否胎生（对鸭嘴兽来说总是为false）
     */
    public Platypus(String name, String speciesName, LocalDate birthDate, 
                    String color, double weight, Gender gender, TemperatureRegulation temperatureType,
                    boolean isViviparous) {
        super(name, speciesName, birthDate, color, weight, gender, temperatureType, false);
        // 鸭嘴兽虽然是哺乳动物，但不是胎生，所以isViviparous总是设置为false
    }

    @Override
    public void breathe() {
        System.out.println(name + " " + speciesName + "用肺呼吸");
    }

    @Override
    public void eat() {
        System.out.println(name + " " + speciesName + "进食");
    }

    @Override
    public void walk() {
        System.out.println(name + " " + speciesName + "在行走");
    }

    @Override
    public void swim() {
        System.out.println(name + " " + speciesName + "在游泳");
    }

    @Override
    public void reproduce() {
        System.out.println(name + " " + speciesName + "产卵");
    }

    @Override
    public void careForYoung() {
        System.out.println(name + " " + speciesName + "哺育后代");
    }
    
    /**
     * 鸭嘴兽特有的毒刺攻击能力
     */
    public void venomousSpurAttack() {
        System.out.println(name + " " + speciesName + "使用毒刺进行攻击");
    }
}
